The present invention relates, in general, to the field of Fibre Channel switching technology. More particularly, the present invention relates to systems, methods and software for aggregating several communication links between two switches in a Fibre Channel fabric.
Fibre Channel is a high performance, serial interconnect standard designed for bi-directional, point-to-point communications between servers, storage systems, workstations, switches, and hubs. It offers a variety of benefits over other link-level protocols, including efficiency and high performance, scalability, simplicity, ease of use and installation, and support for popular high level protocols. Fibre Channel employs a topology known as a xe2x80x9cfabricxe2x80x9d to establish connections between ports. A fabric is a network of switches for interconnecting a plurality of devices without restriction as to the manner in which the switches can be arranged. A fabric can include a mixture of point-to-point and arbitrated loop topologies.
In Fibre Channel, a channel is established between two nodes where the channel""s primary task is to transport data from one point to another at high speed with low latency. The Fibre Channel switch provides flexible circuit/packet switched topology by establishing multiple simultaneous point-to-point connections. Because these connections are managed by the switches or xe2x80x9cfabric elementsxe2x80x9d rather than the connected end devices or xe2x80x9cnodesxe2x80x9d, fabric traffic management is greatly simplified from the perspective of the device.
In many cases, switches are coupled to each other by multiple redundant interswitch links (ISLs). Redundant ISLs improve tolerance to failure of any one ISL. Redundant ISLs can also increase the amount of data that can be communicated between two fabric elements by providing multiple links over which a switch can pass frames. However, the Fibre Channel standards treat each link separately. As a result, routing determinations made by the switch in compliance with Fibre Channel standards may favor one of the redundant links over others, resulting in inefficient use of the available connection bandwidth.
In many cases redundant links have differing bandwidth such that one redundant link may have a 1 gigabit per second capacity while another will have 2 gigabit or ten gigabit. In these cases the Fibre Channel standard routing mechanisms will favor the higher bandwidth one(s) of the redundant links to the exclusion of lower bandwidth links during normal operation. A need exists for systems, methods and software that make efficient use of redundant links between switch pairs and especially between redundant links of different bandwidth.
One difficulty in effecting efficient use of redundant links is that the solutions are desirably compatible with Fibre Channel standards. Standards compatibility ensures that switches from various manufacturers will communicate with each other. A non-standard compliant solution would require changes to both switches in a switch pair in order to operate, essentially restricting the end-user""s flexibility in fabric design and equipment choices. Hence, a need exists for solutions that enable efficient use of redundant ISLs while still complying with Fibre Channel protocols.
A trunking design in accordance with the present invention provides a solution to the aforementioned problems by providing aggregation of links between adjacent switches in an efficient manner. The present invention can be implemented without requiring significant design changes and in a manner that is compatible with existing processes for routing traffic in a Fibre Channel switching environment.
Particularly disclosed herein is a method of routing a flow through a switch in a Fibre Channel fabric. A port coupled to the switch receives traffic. A flow is identified from the traffic using header information and/or receive port information. At least one path is determined for routing the flow through the Fibre Channel fabric. Based upon operating performance information in addition to topology information, the flow is rerouted from a first link in the at least one path to a second link in the at least one path.
In one aspect, the present invention discloses a method of routing a flow on a xe2x80x9cshortest pathxe2x80x9d or lowest cost path in a Fibre Channel fabric. The method first determines one or more shortest paths between a source ID and a destination ID traversing a source switch and a destination switch. For at least one switch, there are at least two links from that switch to one or more adjacent switches on a shortest path to a destination ID. The flow is routed on one of the two links. In response to operating performance information, the flow may be rerouted to another of the two links on a shortest path.
In another aspect, the present invention discloses a method of routing a flow through a switch in a Fibre Channel fabric. A port in the switch receives traffic from the Fibre Channel fabric. Destination identification information identifies a flow. At least one shortest path operative for routing the flow through the Fibre Channel fabric is determined. The flow is then rerouted from a first link to a second link in the at least one shortest path based upon operating performance information in addition to topology information.
In another aspect, the present invention discloses a Fibre Channel switch having a plurality of ports for transmitting and receiving frames. The switch has a first port that is operative for receiving a frame. Embodied within the switch is a first protocol for selecting a second port to receive a frame from the first port. Also embodied within the switch is a second protocol for dynamically switching the selection from the second port to a third port based upon operating performance information in addition to topology information.